package com.it.method_reference;

/**
 * 目标：构造器引用(理解语法)
 */

public class Test3 {
    public static void main(String[] args) {
        // 1.创建这个接口的匿名内部类对象
//        CreateCar cc = new CreateCar() {
//            @Override
//            public Car create(String name, double price) {
//                return new Car(name,price);
//            }
//        };

//        CreateCar cc = (name, price) -> new Car(name, price);

        //构造器引用
        // 应用场景：某个Lambda表达式里只是在创建对象，并且前后参数情况一致，就可以使用构造器
        CreateCar cc = Car::new;

        Car c = cc.create("奔驰", 59.6);

        System.out.println(c);
    }
}

// 接口
interface CreateCar {
    Car create(String name, double price);
}
